/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.edu.com1263.model;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;


/**
 *
 * @author Luiz Cardoso
 */
@Entity
@Table(name="trabalho_avaliado")
public class AvaliacaoProfessor implements Serializable {
    /**
	 * 
	 */
	private static final long serialVersionUID = -4165048343628829131L;
	@Id
	@Column(name="id_Avaliado")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	
	@Column(name="aval_prof")
	private Double AvalProf = 0d;
	
	@Column(name="aval_final")
    private Double AvalFinal = 0d;
	
	@Column(name="aval_turma")
    private Double AvalTurma = 0d;
	
	@ManyToOne
	@JoinColumn(name = "id_prof")
	private Professor professor;
	
	
	@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "avaliado")
	private Collection<Avalia> avaliados ;
	
	@OneToOne
	@JoinColumn(name = "postado_id", unique = true)
	private  TrabalhoPostado postado ;
	
	

	public AvaliacaoProfessor() {		
		avaliados = new HashSet<Avalia>();
	}

    public AvaliacaoProfessor(Double AvalProf, Double AvalFinal, Double AvalTurma) {
	
		avaliados = new HashSet<Avalia>();
    	this.AvalProf = AvalProf;
		this.AvalFinal = AvalFinal;
		this.AvalTurma = AvalTurma;
	}




	public Double getAvalProf() {
        return AvalProf;
    }

    public void setAvalProf(Double AvalProf) {
        this.AvalProf = AvalProf;
    }

    public Double getAvalFinal() {
        return AvalFinal;
    }

    public void setAvalFinal(Double AvalFinal) {
        this.AvalFinal = AvalFinal;
    }

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Double getAvalTurma() {
		return AvalTurma;
	}

	public void setAvalTurma(Double AvalTurma) {
		this.AvalTurma = AvalTurma;
	}

	
	public Professor getProfessor() {
		return professor;
	}

	public void setProfessor(Professor professor) {
		this.professor = professor;
	}

	
	public Collection<Avalia> getAvaliados() {
		return avaliados;
	}

	public void setAvaliados(Collection<Avalia> avaliados) {
		this.avaliados = avaliados;
	}

	public TrabalhoPostado getPostado() {
		return postado;
	}

	public void setPostado(TrabalhoPostado postado) {
		this.postado = postado;
	}

	

}
